home *** CD-ROM | disk | FTP | other *** search
- From: Julian Reschke <reschke@GOEDEL.UNI-MUENSTER.DE>
- Subject: Dxreaddir (2/2)
- Date: Mon, 25 Apr 94 12:36:10 MET DST
-
- diff -c ..\mint/dos.c ./dos.c
- *** ..\mint/dos.c Fri Feb 11 10:34:28 1994
- --- ./dos.c Sun Apr 24 22:27:32 1994
- ***************
- *** 8,14 ****
-
- #include "mint.h"
-
- ! #define DOS_MAX 0x140
-
- Func dos_tab[DOS_MAX];
- short dos_max = DOS_MAX;
- --- 8,14 ----
-
- #include "mint.h"
-
- ! #define DOS_MAX 0x150
-
- Func dos_tab[DOS_MAX];
- short dos_max = DOS_MAX;
- ***************
- *** 602,605 ****
- --- 602,606 ----
- dos_tab[0x13b] = d_getcwd;
- dos_tab[0x13c] = s_alert;
- dos_tab[0x13d] = t_malarm;
- + dos_tab[0x142] = d_xreaddir;
- }
- diff -c ..\mint/dosdir.c ./dosdir.c
- *** ..\mint/dosdir.c Fri Feb 11 10:27:00 1994
- --- ./dosdir.c Sun Apr 24 22:50:12 1994
- ***************
- *** 959,965 ****
- --- 959,993 ----
- return r;
- }
-
- + /* jr: just as d_readdir, but also returns XATTR structure (not
- + following links). Note that the return value reflects the
- + result of the Dreaddir operation, the result of the Fxattr
- + operation is stored in long *xret */
- +
- long ARGS_ON_STACK
- + d_xreaddir(len, handle, buf, xattr, xret)
- + int len;
- + long handle;
- + char *buf;
- + XATTR *xattr;
- + long *xret;
- + {
- + DIR *dirh = (DIR *)handle;
- + fcookie fc;
- + long r;
- +
- + if (!dirh->fc.fs) return EIHNDL;
- + r = (*dirh->fc.fs->readdir)(dirh, buf, len, &fc);
- + if (r != E_OK) return r;
- +
- + *xret = (*fc.fs->getxattr)(&fc, xattr);
- +
- + release_cookie(&fc);
- + return r;
- + }
- +
- +
- + long ARGS_ON_STACK
- d_rewind(handle)
- long handle;
- {
- diff -c ..\mint/proto.h ./proto.h
- *** ..\mint/proto.h Fri Feb 11 10:35:00 1994
- --- ./proto.h Sun Apr 24 22:27:50 1994
- ***************
- *** 109,114 ****
- --- 109,115 ----
- long ARGS_ON_STACK d_pathconf P_((const char *name, int which));
- long ARGS_ON_STACK d_opendir P_((const char *path, int flags));
- long ARGS_ON_STACK d_readdir P_((int len, long handle, char *buf));
- + long ARGS_ON_STACK d_xreaddir P_((int len, long handle, char *buf, XATTR *xattr, long *xret));
- long ARGS_ON_STACK d_rewind P_((long handle));
- long ARGS_ON_STACK d_closedir P_((long handle));
- long ARGS_ON_STACK f_xattr P_((int flag, const char *name, XATTR *xattr));
-
- --
- ---------------------------------------------------
- Julian F. Reschke, Hensenstr. 142, D-48161 Muenster
- eMail: reschke@math.uni-muenster.de jr@ms.maus.de
- ___________________________________________________
-